<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="./../templates/mantenimiento.xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:fn="http://java.sun.com/jsp/jstl/functions"
                xmlns:p="http://primefaces.org/ui"
                xmlns:r="http://richfaces.org">

    <ui:define name="title">
        Administración de Médicos
    </ui:define>
    <ui:define name="datos">
        <center>
            <h:panelGrid id="panelDatos">
                <h:form id="formDatos">
                    <p:focus id="foco" />
                    <p:panel header="Datos" >
                        <h:panelGrid id="datos1" columns="4" >
                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Apellidos:" />
                            <p:inputText  label="Apellidos" id="apellido" size="47" maxlength="100" required="true" value="#{jsfMedico.object.ameApellido}" >
                                <f:validateLength minimum="3"  />
                                <p:watermark for="apellido" value="Ingrese Apellidos" /> 
                            </p:inputText>
                            <p:message for="apellido"/>

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Nombres:" />
                            <p:inputText placeholder="Ingrese Nombres" label="Nombre" id="nombre" size="47" maxlength="100" required="true" value="#{jsfMedico.object.ameNombre}" >
                                <f:validateLength minimum="3"  />
                            </p:inputText>
                            <p:message for="nombre"/>

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Cédula:" />
                            <r:region>
                                <p:inputText placeholder="Ingrese Cédula Correcta" required="true" size="47" label="Cédula" id="cedula"  maxlength="10"  value="#{jsfMedico.object.ameCedula}" >
                                    <f:ajax event="change" render="ced growl" execute="cedula" listener="#{jsfMedico.validarCedula}"/>
                                </p:inputText>
                            </r:region>
                            <p:message id="ced" for="cedula"/>

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Código Ministerio Salud Pública:" />
                            <p:inputText placeholder="Ingrese Código MSP" required="true" size="47" label="Código MSP" id="codigo"  maxlength="20"  value="#{jsfMedico.object.ameCodigoMsp}" >
                            </p:inputText>
                            <p:message  for="codigo"/>



                            <f:verbatim/>
                            <h:outputText value="Especialidad:" />
                            <p:selectOneMenu style="width: 310px" filter="true" filterMatchMode="contains"    label="Especialidad" id="especialidad"  converter="JsfConverterEspecialidad"  value="#{jsfMedico.especialidad}" >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfEspecialidad.selectedItem}" var="item"/>
                                <f:ajax event="change" execute="@this" render="subespecialidad"/>
                            </p:selectOneMenu>
                            <p:message for="especialidad" />

                            <f:verbatim/>
                            <h:outputText value="Subespecialidad:" />
                            <h:panelGrid columns="2" >
                                <p:selectOneMenu style="width: 250px" filter="true" filterMatchMode="contains"   label="Subespecialidad:" id="subespecialidad"  converter="JsfConverterEspecialidad"  value="#{jsfMedico.especialidadMedico.cexEspecialidad}" >                              
                                    <f:selectItem itemLabel="Seleccione ..."/>
                                    <f:selectItems value="#{jsfMedico.selectedItemSubespecialidad}" />
                                </p:selectOneMenu>
                                <h:commandLink value="AGREGAR" action="#{jsfMedico.agregarEspecialidad}" title="Agregar">
                                    <f:ajax execute="@this subespecialidad" event="action" render="listaEspecialidad  mesSub"/>
                                </h:commandLink>
                            </h:panelGrid>
                            <p:message id="mesSub" for="subespecialidad" />

                            <f:verbatim/>
                            <f:verbatim/>
                            <r:dataTable   id="listaEspecialidad" value="#{jsfMedico.listaEspecialidadMedico}" var="item"   >
                                <h:column >
                                    <f:facet name="header">
                                        <h:outputText value="#" />
                                    </f:facet>
                                    <h:outputText value="#{jsfMedico.listaEspecialidadMedico.indexOf(item)+1}"/>
                                </h:column>
                                <h:column >
                                    <f:facet name="header">
                                        <h:outputText value="Especialidad" />
                                    </f:facet>
                                    <h:outputText value="#{item.cexEspecialidad.cesNombre}">
                                    </h:outputText>
                                </h:column>


                                <h:column  >
                                    <f:facet name="header">
                                        <h:outputText value="Acción" />
                                    </f:facet>
                                    <r:commandLink value="Eliminar" action="#{jsfMedico.eliminarEspecialidad(item)}" execute="@this"  render="listaEspecialidad  commonStatus" title="Eliminar" onclick="if (!confirm('Seguro que desea eliminar el registro?')) {
                                                formLista.reset();
                                                return false;
                                            }">
                                    </r:commandLink>

                                </h:column>
                            </r:dataTable>
                            <f:verbatim/>

                            <f:verbatim/>
                            <h:outputText value="Tipo de consulta:" />
                            <p:selectOneMenu style="width: 310px" filter="true" filterMatchMode="contains"    label="Tipo de consulta" id="tipoConsulta"    value="#{jsfMedico.object.ameTipoConsulta}" >                              
                                <f:selectItem itemLabel="CONSULTA EXTERNA" itemValue="1" />
                                <f:selectItem itemLabel="HOSPITAL DEL DIA" itemValue="2" />
                                <f:selectItem itemLabel="HOSPITALIZACIÓN" itemValue="3" />
                            </p:selectOneMenu>
                            <p:message for="tipoConsulta" />

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Formación profesional:" />
                            <p:selectOneMenu style="width: 310px" filter="true" filterMatchMode="contains"   label="Formación profesional" required="true" id="formacion"  converter="JsfConverterFormacion"  value="#{jsfMedico.object.admFormacionProfesional}" >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfFormacionProfesional.selectedItem}" var="item"/>
                            </p:selectOneMenu>
                            <p:message for="formacion" />

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Nacionalidad:" />
                            <p:selectOneMenu style="width: 310px" filter="true" filterMatchMode="contains"    label="Nacionalidad" required="true" id="nacionalidad"  converter="JsfConverterNacionalidad"  value="#{jsfMedico.object.cexNacionalidad}" >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfNacionalidad.selectedItem}" var="item"/>
                            </p:selectOneMenu>
                            <p:message for="nacionalidad" />

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Grupo Cultural:" />
                            <p:selectOneMenu style="width: 310px" filter="true" filterMatchMode="contains"    label="Grupo Cultural" required="true" id="grupo"  converter="JsfConverterGrupoCultural"  value="#{jsfMedico.object.cexGrupoCultural}" >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfGrupoCultural.selectedItem}" var="item"/>
                            </p:selectOneMenu>
                            <p:message for="grupo" />

                            <f:verbatim/>
                            <h:outputText value="Dirección:" />
                            <p:inputText placeholder="Ingrese Dirección" label="Dirección" id="direccion" size="47" maxlength="100"  value="#{jsfMedico.object.ameDireccion}" >
                            </p:inputText>
                            <p:message for="direccion"/>




                            <f:verbatim/>
                            <h:outputText value="Telefono Fijo:" />
                            <p:inputText placeholder="Ingrese telefono convencional" label="Telefono Fijo" id="telefonoF" size="47" maxlength="10"  value="#{jsfMedico.object.ameTelefonoConv}" >                       
                            </p:inputText>
                            <p:message for="telefonoF"/>

                            <f:verbatim/>
                            <h:outputText value="Telefono Movil:" />
                            <p:inputText placeholder="Ingrese telefono movil" label="Telefono Movil" id="telefonoM" size="47" maxlength="12"  value="#{jsfMedico.object.ameTelefonoMovil}" >                       
                            </p:inputText>
                            <p:message for="telefonoM"/>

                            <f:verbatim/>
                            <h:outputText value="Email:" />
                            <p:inputText  label="correo" placeholder="Ejemplo@ejemplo.com" id="correo" size="47" maxlength="50"  value="#{jsfMedico.object.ameEmail}" >
                            </p:inputText>
                            <p:message for="correo"/>

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText  value="Fecha de nacimiento:" />
                            <p:calendar navigator="true" placeholder="Seleccione fecha de nacimiento" size="47"  requiredMessage="Fecha de nacimiento"  required="true"  id="fechaNac" value="#{jsfMedico.object.ameFechaDeNacimiento}">
                            </p:calendar>
                            <p:message for="fechaNac"/>

                            <f:verbatim/>
                            <h:outputText  value="Fecha Ingreso:" />
                            <p:calendar  requiredMessage="Fecha de ingreso: campo obligatorio" size="47"  id="fecha" value="#{jsfMedico.object.ameFechaIngreso}">
                            </p:calendar>
                            <p:message for="fecha"/>


                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Genero:" />
                            <p:selectOneRadio style="width: 310px" label="Genero" required="true" id="genero"  value="#{jsfMedico.object.ameGenero}" >                              
                                <f:selectItem itemLabel="Masculino" itemValue="1"/>
                                <f:selectItem itemLabel="Femenino" itemValue="2"/>
                            </p:selectOneRadio>
                            <p:message for="genero" />

                            <f:verbatim/>
                            <h:outputLabel rendered="#{not empty jsfMedico.object.ameId }" for="fechasal"  value="Fecha / Salida:" />
                            <p:calendar rendered="#{not empty jsfMedico.object.ameId }" size="47"  id="fechasal" value="#{jsfMedico.object.ameFechaSalida}"/>
                            <p:message for="fechasal"/>

                            <f:verbatim/>
                            <h:outputLabel rendered="#{not empty jsfMedico.object.ameId }" value="Activo:" />
                            <p:selectBooleanCheckbox rendered="#{not empty jsfMedico.object.ameId }"   id="estado"  value="#{jsfMedico.estado}">
                            </p:selectBooleanCheckbox>
                            <p:message for="estado" />
                        </h:panelGrid>


                        <br />
                        <center>
                            <h:panelGrid columns="2" >
                                <h:panelGroup id="panelBotones">
                                    <p:commandButton id="btGrabar" process="formDatos" update=":panelDatos" value="Grabar" action="#{jsfMedico.grabarAction}"  title="Grabar registro"/>
                                    <p:commandButton id="btNuevo" process="@none" update="@form" value="Nuevo" action="#{jsfMedico.nuevoAction}"  title="Limpiar o crear nuevo registro">
                                    </p:commandButton>

                                </h:panelGroup>
                                <p:ajaxStatus id="commonStatus">
                                    <f:facet name="start">
                                        <h:graphicImage library="images/ajax" name="status2.gif"/>
                                    </f:facet>
                                </p:ajaxStatus>
                            </h:panelGrid>
                        </center>
                        <p:message  for="formDatos">
                            <f:facet name="errorMarker">
                                <h:graphicImage library="images/ajax" name="warning.gif"/>
                            </f:facet>
                            <f:facet name="infoMarker">
                                <h:graphicImage library="images/ajax" name="passed.gif"/>
                            </f:facet>
                        </p:message>


                        <h:panelGroup >
                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Campo obligatorio" styleClass="campo-obligatorio"/>
                        </h:panelGroup>

                    </p:panel>
                    <p:dataTable id="listaSimple" value="#{jsfMedico.lista}" var="item"  rows="10" 
                                 rendered="#{jsfMedico.lista.size()>0}" paginator="true"   
                                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                                 rowsPerPageTemplate="5,10,15" rowIndexVar="rowIndex" rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'odd-row' : 'even-row'}"
                                 emptyMessage="No se encontro medicos"> 
                        <f:facet name="header">
                            <h:outputText value="Registros encontrados [#{jsfMedico.lista.size()}]" />
                        </f:facet>
                        <p:column headerText="#" >
                            <h:outputText value="#{jsfMedico.lista.indexOf(item)+1}"/>
                        </p:column>
                        <p:column headerText="C.Identidad" >
                            <h:outputText value="#{item.ameCedula}"/>
                        </p:column>

                        <p:column headerText="Código MSP" >
                            <h:outputText value="#{item.ameCodigoMsp}"/>
                        </p:column>

                        <p:column headerText="Nombre" >
                            <h:outputText value="#{item.ameNombreFull}"/>
                        </p:column>

                        <p:column headerText="Especialidad" >
                            <p:dataTable id="listaSimpleEspecialidad" rendered="#{item.cexEspecialidadMedicoList.size() > 0}" value="#{item.cexEspecialidadMedicoList}" var="item1"   >
                                <p:column >
                                    <h:outputText value="#{item1.cexEspecialidad.cesNombre}">
                                    </h:outputText>
                                </p:column>
                            </p:dataTable>

                        </p:column>



                        <p:column headerText="Tipo de atención" >
                            <h:outputText value="#{item.ameTipoConsulta eq 1 ? 'CONSULTA EXTERNA': (item.ameTipoConsulta eq 2 ? 'EMERGENCIA':'HOSPITALIZACION')}"/>
                        </p:column>







                        <p:column headerText="Estado"  >
                            <h:outputText value="#{item.ameEstado eq 1 ? 'ACTIVO':'INACTIVO'}" styleClass="#{item.ameEstado==1?'textoNegrita':'campo-obligatorio textoNegrita'}"/>
                        </p:column> 
                        <p:column headerText="Acción" >
                            <h:commandLink action="#{jsfMedico.editarAction(item)}" title="Editar">
                                <h:graphicImage library="images/icons" name="page-edit-icon-24.png" styleClass="pic" />
                                <f:ajax execute="@this" event="action" render=":panelDatos"/>
                            </h:commandLink>
                            <h:commandLink action="#{jsfMedico.eliminarAction(item)}" title="Eliminar" onclick="if (!confirm('Seguro que desea eliminar el registro?')) {
                                        formLista.reset();
                                        return false;
                                    }">
                                <h:graphicImage library="images/icons" name="Document-Delete-icon-24.png" styleClass="pic" />
                                <f:ajax execute="@this" event="action" render="@form :panelDatos"/>
                            </h:commandLink>
                        </p:column>

                    </p:dataTable>


                    <p:growl id="growl"  showDetail="true" life="6500" />  
                </h:form>
            </h:panelGrid>
        </center>
    </ui:define>
</ui:composition>
